Signal processing with channel eigenmode decomposition and channel inversion for mimo systems

ABSTRACT

Techniques for processing a data transmission at a transmitter and receiver, which use channel eigen-decomposition, channel inversion, and (optionally) “water-pouring”. At the transmitter, (1) channel eigen-decomposition is performed to determine eigenmodes of a MIMO channel and to derive a first set of steering vectors, (2) channel inversion is performed to derive weights (e.g., one set for each eigenmode) used to minimize ISI distortion, and (3) water-pouring may be performed to derive scaling values indicative of the transmit powers allocated to the eigenmodes. The first set of steering vectors, weights, and scaling values are used to derive a pulse-shaping matrix, which is used to precondition modulation symbols prior to transmission. At the receiver, channel eigen-decomposition is performed to derive a second set of steering vectors, which are used to derive a pulse-shaping matrix used to condition received symbols such that orthogonal symbol streams are recovered.

CLAIM OF PRIORITY

This application is a continuation of, and claims the benefit of priority from, U.S. patent application Ser. No. 10/179,442 (issuing as U.S. Pat. No. 7,613,248 on Nov. 3, 2009), entitled “Signal Processing with Channel Eigenmode Decomposition and Channel Inversion for MIMO Systems” and filed Jun. 24, 2002, which is assigned to the assignee of this application and is fully incorporated herein by reference for all purposes.

BACKGROUND

1. Field

The present invention relates generally to data communication, and more specifically to techniques for performing signal processing with channel eigenmode decomposition and channel inversion for multiple-input multiple-output (MIMO) communication systems.

2. Background

A multiple-input multiple-output (MIMO) communication system employs multiple (N_(T)) transmit antennas and multiple (N_(R)) receive antennas for data transmission. A MIMO channel formed by the N_(T) transmit and N_(R) receive antennas may be decomposed into N_(S) independent channels, with N_(S)≦min {N_(T), N_(R)}. Each of the N_(S) independent channels is also referred to as a spatial subchannel of the MIMO channel and corresponds to a dimension. The MIMO system can provide improved performance (e.g., increased transmission capacity) if the additional dimensionalities created by the multiple transmit and receive antennas are utilized.

The spatial subchannels of a wideband MIMO system may encounter different channel conditions due to various factors such as fading and multipath. Each spatial subchannel may thus experience frequency selective fading, which is characterized by different channel gains at different frequencies (i.e., different frequency bins or subbands) of the overall system bandwidth. With frequency selective fading, each spatial subchannel may achieve different signal-to-noise-and-interference ratios (SNRs) for different frequency bins. Consequently, the number of information bits per modulation symbol (or data rate) that may be transmitted at different frequency bins of each spatial subchannel for a particular level of performance (e.g., 1% packet error rate) may be different from bin to bin. Moreover, because the channel conditions typically vary with time, the supported data rates for the bins of the spatial subchannels also vary with time.

To combat frequency selective fading in a wideband channel, orthogonal frequency division multiplexing (OFDM) may be used to effectively partition the system bandwidth into a number of (N_(F)) subbands (which may also be referred to as frequency bins or subchannels). With OFDM, each frequency subchannel is associated with a respective subcarrier upon which data may be modulated. For a MIMO system that utilizes OFDM (i.e., a MIMO-OFDM system), each frequency subchannel of each spatial subchannel may be viewed as an independent transmission channel.

A key challenge in a coded communication system is the selection of the appropriate data rates and coding and modulation schemes to be used for a data transmission based on channel conditions. The goal of this selection process is to maximize throughput while meeting quality objectives, which may be quantified by a particular packet error rate (PER), certain latency criteria, and so on.

One straightforward technique for selecting data rates and coding and modulation schemes is to “bit load” each transmission channel in the MIMO-OFDM system according to its transmission capability, which may be quantified by the channel's short-term average SNR. However, this technique has several major drawbacks. First, coding and modulating individually for each transmission channel can significantly increase the complexity of the processing at both the transmitter and receiver. Second, coding individually for each transmission channel may greatly increase coding and decoding delay. And third, a high feedback rate would be needed to send channel state information (CSI) indicative of the channel conditions (e.g., the gain, phase, and SNR) of each transmission channel.

For a MIMO system, transmit power is another parameter that may be manipulated to maximize throughput. In general, the overall throughput of the MIMO system may be increased my allocating more transmit power to transmission channels with greater transmission capabilities. However, allocating different amounts of transmit power to different frequency bins of a given spatial subchannel tends to exaggerate the frequency selective nature of the spatial subchannel. It is well known that frequency selective fading causes inter-symbol interference (ISI), which is a phenomenon whereby each symbol in a received signal acts as distortion to subsequent symbols in the received signal. The ISI distortion degrades performance by impacting the ability to correctly detect the received symbols. To mitigate the deleterious effects of ISI, equalization of the received symbols would need to be performed at the receiver. Thus, a major drawback in frequency-domain power allocation is the additional complexity at the receiver to combat the resultant additional ISI distortion.

There is therefore a need in the art for techniques to achieve high overall throughput in a MIMO system without having to individually code each transmission channel and which mitigate the deleterious effects of ISI.

SUMMARY

Techniques are provided herein for processing a data transmission at a transmitter and a receiver of a MIMO system such that high performance (e.g., high overall throughput) is achieved. In an aspect, a time-domain implementation is provided which uses frequency-domain channel eigen-decomposition, channel inversion, and (optionally) “water-pouring” results to derive pulse-shaping and beam-steering solutions for the transmitter and receiver.

Channel eigen-decomposition is performed at the transmitter to determine the eigenmodes (i.e., the spatial subchannels) of a MIMO channel and to obtain a first set of steering vectors, which are used to precondition modulation symbols prior to transmission over the MIMO channel. Channel eigen-decomposition may be performed based on an estimated channel response matrix, which is an estimate of the (time-domain or frequency-domain) channel response of the MIMO channel. Channel eigen-decomposition is also performed at the receiver to obtain a second set of steering vectors, which are used to condition received symbols such that orthogonal symbol streams are recovered at the receiver.

Channel inversion is performed at the transmitter to derive weights, which are used to minimize or reduce the amount of ISI distortion at the receiver. In particular, the channel inversion may be performed for each eigenmode used for data transmission. One set of weights may be derived for each eigenmode based on the estimated channel response matrix for the MIMO channel and is used to invert the frequency response of the eigenmode.

Water-pouring analysis may (optionally) be used to more optimally allocate the total available transmit power to the eigenmodes of the MIMO channel. In particular, eigenmodes with greater transmission capabilities may be allocated more transmit power, and eigenmodes with transmission capabilities below a particular threshold may be omitted from use (e.g., by allocating these bad eigenmodes with zero transmit power). The transmit power allocated to each eigenmode then determines the data rate and possibly the coding and modulation scheme to be used for the eigenmode.

At the transmitter, data is initially processed (e.g., coded and modulated) in accordance with a particular processing scheme to provide a number of modulation symbol streams (e.g., one modulation symbol stream for each eigenmode). An estimated channel response matrix for the MIMO channel is obtained (e.g., from the receiver) and decomposed (e.g., in the frequency domain, using channel eigen-decomposition) to obtain a set of matrices of right eigen-vectors and a set of matrices of singular values. A number of sets of weights are then derived based on the matrices of singular values, with each set of weights being used to invert the frequency response of a respective eigenmode used for data transmission. Water-pouring analysis may also be performed based on the matrices of singular values to obtain a set of scaling values indicative of the transmit powers allocated to the eigenmodes. A pulse-shaping matrix for the transmitter is then derived based on the matrices of right eigen-vectors, the weights, and the scaling values (if available). The pulse-shaping matrix comprises steering vectors, which are used to precondition the streams of modulation symbols to obtain streams of preconditioned symbols to be transmitted over the MIMO channel.

At the receiver, the estimated channel response matrix is also obtained (e.g., based on pilot symbols sent from the transmitter) and decomposed to obtain a set of matrices of left eigen-vectors. A pulse-shaping matrix for the receiver is then derived based on the matrices of left eigen-vectors and used to condition a number of received symbol streams to obtain a number of recovered symbol streams. The recovered symbols are further processed (e.g., demodulated and decoded) to recover the transmitted data.

Various aspects and embodiments of the invention are described in further detail below. The invention further provides methods, digital signal processors, transmitter and receiver units, and other apparatuses and elements that implement various aspects, embodiments, and features of the invention, as described in further detail below.

BRIEF DESCRIPTION OF THE DRAWINGS

The features, nature, and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference characters identify correspondingly throughout and wherein:

FIG. 1 is a block diagram of an embodiment of a transmitter system and a receiver system in a MIMO system;

FIG. 2 is a block diagram of a transmitter unit within the transmitter system;

FIGS. 3A and 3B are diagrams that graphically illustrate the derivation of the weights used to invert the frequency response of each eigenmode of a MIMO channel;

FIG. 4 is a flow diagram of a process for allocating the total available transmit power to the eigenmodes of the MIMO channel;

FIGS. 5A and 5B are diagrams that graphically illustrate the allocation of the total transmit power to three eigenmodes in an example MIMO system;

FIG. 6 is a flow diagram of an embodiment of the signal processing at the transmitter unit;

FIG. 7 is a block diagram of a receiver unit within the receiver system; and

FIG. 8 is a flow diagram of an embodiment of the signal processing at the receiver unit.

DETAILED DESCRIPTION

The techniques described herein for processing a data transmission at a transmitter and receiver may be used for various wireless communication systems. For clarity, various aspects and embodiments of the invention are described specifically for a multiple-input multiple-output (MIMO) communication system.

A MIMO system employs multiple (N_(T)) transmit antennas and multiple (N_(R)) receive antennas for data transmission. A MIMO channel formed by the N_(T) transmit and N_(R) receive antennas may be decomposed into N_(S) independent channels, with N_(S)≦min {N_(T), N_(R)}. Each of the N_(S) independent channels is also referred to as a spatial subchannel of the MIMO channel. The number of spatial subchannels is determined by the number of eigenmodes for the MIMO channel, which in turn is dependent on a channel response matrix that describes the response between the N_(T) transmit and N_(R) receive antennas.

FIG. 1 is a block diagram of an embodiment of a transmitter system 110 and a receiver system 150, which are capable of implementing various signal processing techniques described herein.

At transmitter system 110, traffic data is provided from a data source 112 to a transmit (TX) data processor 114, which formats, codes, and interleaves the traffic data based on one or more coding schemes to provide coded data. The coded traffic data may then be multiplexed with pilot data using, for example, time division multiplex (TDM) or code division multiplex (CDM), in all or a subset of the data streams to be transmitted. The pilot data is typically a known data pattern processed in a known manner, if at all. The multiplexed pilot and coded traffic data is interleaved and then modulated (i.e., symbol mapped) based on one or more modulation schemes to provide modulation symbols. In an embodiment, TX data processor 114 provides one modulation symbol stream for each spatial subchannel used for data transmission. The data rate, coding, interleaving, and modulation for each modulation symbol stream may be determined by controls provided by a controller 130.

The modulation symbols are then provided to a TX MIMO processor 120 and further processed. In a specific embodiment, the processing by TX MIMO processor 120 includes (1) determining an estimated channel frequency response matrix for the MIMO channel, (2) decomposing this matrix to determine the eigenmodes of the MIMO channel and to derive a set of “steering” vectors for the transmitter, one vector for the modulation symbol stream to be transmitted on each spatial subchannel, (3) deriving a transmit spatio-temporal pulse-shaping matrix based on the steering vectors and a weighting matrix indicative of the transmit powers assigned to the frequency bins of the eigenmodes, and (4) preconditioning the modulation symbols with the pulse-shaping matrix to provide preconditioned modulation symbols. The processing by TX MIMO processor 120 is described in further detail below. Up to N_(T) streams of preconditioned symbols are then provided to transmitters (TMTR) 122 a through 122 t.

Each transmitter 122 converts a respective preconditioned symbol stream into one or more analog signals and further conditions (e.g., amplifies, filters, and frequency upconverts) the analog signals to generate a modulated signal suitable for transmission over the MIMO channel. The modulated signal from each transmitter 122 is then transmitted via a respective antenna 124 to the receiver system.

At receiver system 150, the transmitted modulated signals are received by N_(R) antennas 152 a through 152 r, and the received signal from each antenna 152 is provided to a respective receiver (RCVR) 154. Each receiver 154 conditions (e.g., filters, amplifies, and frequency downconverts) the received signal, digitizes the conditioned signal to provide a stream of samples, and further processes the sample stream to provide a stream of received symbols. An RX MIMO processor 160 then receives and processes the N_(R) received symbol streams to provide N_(T) streams of recovered symbols, which are estimates of the modulation symbols transmitted from the transmitter system. In an embodiment, the processing by RX MIMO processor 160 may include (1) determining the estimated channel frequency response matrix for the MIMO channel, (2) decomposing this matrix to derive a set of steering vectors for the receiver, (3) deriving a receive spatio-temporal pulse-shaping matrix based on the steering vectors, and (4) conditioning the received symbols with the pulse-shaping matrix to provide the recovered symbols. The processing by RX MIMO processor 160 is described in further detail below.

A receive (RX) data processor 162 then demodulates, de-interleaves, and decodes the recovered symbols to provide decoded data, which is an estimate of the transmitted traffic data. The processing by RX MIMO processor 160 and RX data processor 162 is complementary to that performed by TX MIMO processor 120 and TX data processor 114, respectively, at transmitter system 110.

RX MIMO processor 160 may further derive channel impulse responses for the MIMO channel, received noise power and/or signal-to-noise-and-interference ratios (SNRs) for the spatial subchannels, and so on. RX MIMO processor 160 would then provide these quantities to a controller 170. RX data processor 162 may also provide the status of each received packet or frame, one or more other performance metrics indicative of the decoded results, and possibly other information. Controller 170 then derives channel state information (CSI), which may comprise all or some of the information received from RX MIMO processor 160 and RX data processor 162. The CSI is processed by a TX data processor 178, modulated by a modulator 180, conditioned by transmitters 154 a through 154 r, and sent back to transmitter system 110.

At transmitter system 110, the modulated signals from receiver system 150 are received by antennas 124, conditioned by receivers 122, and demodulated by a demodulator 140 to recover the CSI transmitted by the receiver system. The CSI is then provided to controller 130 and used to generate various controls for TX data processor 114 and TX MIMO processor 120.

Controllers 130 and 170 direct the operation at the transmitter and receiver systems, respectively. Memories 132 and 172 provide storage for program codes and data used by controllers 130 and 170, respectively.

Techniques are provided herein for achieving high performance (e.g., high overall system throughput) via a time-domain implementation that uses frequency-domain channel eigen-decomposition, channel inversion, and (optionally) water-pouring results to derive time-domain pulse-shaping and beam-steering solutions for the transmitter and receiver.

Channel eigen-decomposition is performed at the transmitter to determine the eigenmodes of the MIMO channel and to derive a first set of steering vectors, which are used to precondition the modulation symbols. Channel eigen-decomposition is also performed at the receiver to derive a second set of steering vectors, which are used to condition the received symbols such that orthogonal symbol streams are recovered at the receiver. The preconditioning at the transmitter and the conditioning at the receiver orthogonalize the symbol streams transmitted over the MIMO channel.

Channel inversion is performed at the transmitter to flatten the frequency response of each eigenmode (or spatial subchannel) used for data transmission. As noted above, frequency selective fading causes inter-symbol interference (ISI), which can degrade performance by impacting the ability to correctly detect the received symbols at the receiver. Conventionally, the frequency selective fading may be compensated for at the receiver by performing equalization on the received symbol streams. However, equalization increases the complexity of the receiver processing. With the inventive techniques, the channel inversion is performed at the transmitter to account for the frequency selective fading and to mitigate the need for equalization at the receiver.

Water-pouring (or water-filling) analysis is used to more optimally allocate the total available transmit power in the MIMO system to the eigenmodes such that high performance is achieved. The transmit power allocated to each eigenmode may then determine the data rate and the coding and modulation scheme to be used for the eigenmode.

These various processing techniques are described in further detail below.

The techniques described herein provide several potential advantages. First, with time-domain eigenmode decomposition, the maximum number of eigenmodes with different SNRs is given by min (N_(T),N_(R)). If one independent data stream is transmitted on each eigenmode and each data stream is independently processed, then the maximum number of different coding/modulation schemes is also given by min(N_(T),N_(R)). It is also possible to make the received SNRs for the data streams essentially the same, thereby further simplifying the coding/modulation. The techniques described herein can thus greatly simplify the coding/modulation for a data transmission by avoiding the per-bin bit allocation required to approach channel capacity in MIMO-OFDM systems that utilize frequency-domain water-pouring.

Second, the channel inversion at the transmitter results in recovered symbol streams at the receiver that do not require equalization. This then reduces the complexity of the receiver processing. In contrast, other wide-band time-domain techniques typically require complicated space-time equalization to recover the symbol streams.

Third, the time-domain signaling techniques described herein can more easily integrate the channel/pilot structures of various CDMA standards, which are also based on time-domain signaling. Implementation of the channel/pilot structures may be more complicated in OFDM-based systems that perform frequency-domain signaling.

FIG. 2 is a block diagram of an embodiment of a transmitter unit 200, which is capable of implementing various processing techniques described herein. Transmitter unit 200 is an embodiment of the transmitter portion of transmitter system 110 in FIG. 1. Transmitter unit 200 includes (1) a TX data processor 114 a that receives and processes traffic and pilot data to provide N_(T) modulation symbol streams and (2) a TX MIMO processor 120 a that preconditions the modulation symbol streams to provide N_(T) preconditioned symbol streams. TX data processor 114 a and TX MIMO processor 120 a are one embodiment of TX data processor 114 and TX MIMO processor 120, respectively, in FIG. 1.

In the specific embodiment shown in FIG. 2, TX data processor 114 a includes an encoder 212, a channel interleaver 214, and a symbol mapping element 216. Encoder 212 receives and codes the traffic data (i.e., the information bits, d_(i)) in accordance with one or more coding schemes to provide coded bits. The coding increases the reliability of the data transmission. In an embodiment, a separate coding scheme may be used for the information bits for each eigenmode (or spatial subchannel) selected for use for data transmission. In alternative embodiments, a separate coding scheme may be used for each subset of spatial subchannels, or a common coding scheme may be used for all spatial subchannels. The coding scheme(s) to be used are determined by controls from controller 130 and may be selected based on the CSI received from the receiver system. Each selected coding scheme may include any combination of cyclic redundancy check (CRC), convolutional coding, Turbo coding, block coding, and other coding, or no coding at all.

Channel interleaver 214 interleaves the coded bits based on one or more interleaving schemes. Typically, each selected coding scheme is associated with a corresponding interleaving scheme. The interleaving provides time diversity for the coded bits, permits the data to be transmitted based on an average SNR of each spatial subchannel used for the data transmission, combats fading, and further removes correlation between coded bits used to form each modulation symbol.

Symbol mapping element 216 then receives and multiplexes pilot data with the interleaved data and further maps the multiplexed data in accordance with one or more modulation schemes to provide modulation symbols. A separate modulation scheme may be used for each spatial subchannel selected for use, or for each subset of spatial subchannels. Alternatively, a common modulation scheme may be used for all selected spatial subchannels.

The symbol mapping for each spatial subchannel may be achieved by grouping sets of bits to form data symbols (each of which may be a non-binary value) and mapping each data symbol to a point in a signal constellation corresponding to the modulation scheme selected for use for that spatial subchannel. The selected modulation scheme may be QPSK, M-PSK, M-QAM, or some other scheme. Each mapped signal point is a complex value and corresponds to a modulation symbol. Symbol mapping element 216 provides a vector of modulation symbols for each symbol period, with the number of modulation symbols in each vector corresponding to the number of spatial subchannels selected for use for that symbol period. Symbol mapping element 216 thus provides up to N_(T) modulation symbol streams. These streams collectively form a sequence of vectors, with are also referred to as the modulation symbol vectors, s(n), with each such vector including up to N_(S) modulation symbols to be transmitted on up to N_(S) spatial subchannels for the n-th symbol period.

Within TX MIMO processor 120 a, the response of the MIMO channel is estimated and used to precondition the modulation symbols prior to transmission to the receiver system. In a frequency division duplexed (FDD) system, the downlink and uplink are allocated different frequency bands, and the channel responses for the downlink and uplink may not be correlated to a sufficient degree. For the FDD system, the channel response may be estimated at the receiver and sent back to the transmitter. In a time division duplexed (TDD) system, the downlink and uplink share the same frequency band in a time division multiplexed manner, and a high degree of correlation may exist between the downlink and uplink channel responses. For the TDD system, the transmitter system may estimate the uplink channel response (e.g., based on the pilot transmitted by the receiver system on the uplink) and may then derive the downlink channel response by accounting for any differences such as those between the transmit and receive antenna array manifolds.

In an embodiment, the channel response estimates are provided to TX MIMO processor 120 a as a sequence of N_(R)×N_(T) matrices,

(n), of time-domain samples. This sequence of matrices is collectively referred to as a channel impulse response matrix,

The (i,j)-th element, h _(i,j), of the estimated channel impulse response matrix,

for i=(1, 2, . . . , N_(R)) and j=(1, 2, . . . , N_(T)), is a sequence of samples that represents the sampled impulse response of the propagation path from the j-th transmit antenna to the i-th receive antenna.

Within TX MIMO processor 120 a, a fast Fourier transformer 222 receives the estimated channel impulse response matrix,

(e.g., from the receiver system) and derives the corresponding estimated channel frequency response matrix, Ĥ, by performing a fast Fourier transform (FFT) on the matrix

(i.e., Ĥ=FFT

). This may be achieved by performing an N_(F)-point FFT on a sequence of N_(F) samples for each element of

to derive a set of N_(F) coefficients for the corresponding element of Ĥ, where N_(F) corresponds to the number of frequency bins for the FFT (i.e., the length of the FFT). The N_(R)·N_(T) elements of Ĥ are thus N_(R)·N_(T) sets of coefficients representing the frequency responses of the propagation paths between the N_(T) transmit antennas and N_(R) receive antennas. Each element of Ĥ is the FFT of the corresponding element of

The estimated channel frequency response matrix, Ĥ, may also be viewed as comprising a set of N_(F) matrices, Ĥ(k) for k=(0, 1, . . . , N_(F)−1).

Channel Eigen-Decomposition

A unit 224 then performs eigen-decomposition of the MIMO channel used for data transmission. In one embodiment for performing channel eigen-decomposition, unit 224 computes the singular value decomposition (SVD) of the estimated channel frequency response matrix, Ĥ. In an embodiment, the singular value decomposition is performed for each matrix Ĥ(k), for k=(0, 1, . . . , N_(F)−1). The singular value decomposition of matrix Ĥ(k) for frequency bin k (or frequency f_(k)) may be expressed as:

{circumflex over (H)}(k)= U (k)Λ(k) V ^(H)(k),  Eq. (1)

where U(k) is an N_(R)×N_(R) unitary matrix (i.e., U ^(H) U=I, where I is the identity matrix with ones along the diagonal and zeros everywhere else);

Λ(k) is an N_(R)×N_(T) diagonal matrix of singular values of Ĥ(k); and

V(k) is an N_(T)×N_(T) unitary matrix.

The diagonal matrix Λ(k) contains non-negative real values along the diagonal (i.e., Λ(k)=diag (λ₁(k), λ₂(k), . . . , λ_(N) _(T) (k))) and zeros elsewhere. The λ_(i)(k), for i=(1, 2, . . . , N_(T)), are referred to as the singular values of the matrix Ĥ(k). The singular value decomposition is a matrix operation known in the art and described in various references. One such reference is a book by Gilbert Strang entitled “Linear Algebra and Its Applications,” Second Edition, Academic Press, 1980, which is incorporated herein by reference.

The result of the singular value decomposition is three sets of N_(F) matrices, U, Λ, and V ^(H), where U=[U(0) . . . U(k) . . . U(N_(F)−1)], and so on. For each value of k, U(k) is the N_(R)×N_(R) unitary matrix of left eigen-vectors of Ĥ(k), V(k) is the N_(T)×N_(T) unitary matrix of right eigen-vectors of Ĥ(k), and Λ(k) is the N_(R)×N_(T) diagonal matrix of singular values of Ĥ(k).

In another embodiment for performing channel eigen-decomposition, unit 224 first obtains a square matrix R(k) as R(k)=Ĥ ^(H)(k) Ĥ(k). The eigenvalues of the square matrix R(k) would then be the squares of the singular values of the matrix Ĥ(k), and the eigen-vectors of R(k) would be the right eigen-vectors of Ĥ(k), or V(k). The decomposition of R(k) to obtain the eigenvalues and eigen-vectors is known in the art and not described herein. Similarly, another square matrix R′(k) may be obtained as R′(k)=Ĥ(k) Ĥ ^(H)(k). The eigenvalues of this square matrix R′(k) would also be the squares of the singular values of Ĥ(k), and the eigen-vectors of R′(k) would be the left eigen-vectors of Ĥ(k), or U(k).

The channel eigen-decomposition is used to decompose the MIMO channel into its eigenmodes, at frequency f_(k), for each value of k where k=(0, 1, . . . , N_(F)−1). The rank r(k) of Ĥ(k) corresponds to the number of eigenmodes for the MIMO channel at frequency f_(k), which corresponds to the number of independent channels (i.e., the number of spatial subchannels) available in frequency bin k.

As described in further detail below, the columns of V(k) are the steering vectors associated with frequency f_(k) to be used at the transmitter for the elements of the modulation symbol vectors, s(n). Correspondingly, the columns of U(k) are the steering vectors associated with frequency f_(k) to be used at the receiver for the elements of the received symbol vectors, r(n). The matrices U(k) and V(k), for k=(0, 1, . . . , N_(F)−1), are used to orthogonalize the symbol streams transmitted on the eigenmodes at each frequency f_(k). When these matrices are used to precondition the modulation symbol streams at the transmitter and to condition the received symbol streams at the receiver, either in the frequency domain or the time domain, the result is the overall orthogonalization of the symbol streams. This then allows for separate coding/modulation per eigenmode (as opposed to per bin), which can greatly simplify the processing at the transmitter and receiver.

The elements along the diagonal of Λ(k) are λ_(ii)(k), for i={1, 2, . . . , r(k)}, where r(k) is the rank of Ĥ(k). The columns of U(k) and V(k), u _(i)(k) and v _(i)(k), respectively, are solutions to the eigen equation, which may be expressed as:

{circumflex over (H)}(k) v _(i)(k)=λ_(ii) u _(i)(k).  Eq. (2)

The three sets of matrices, U(k), Λ(k), and V(k), for k=(0, 1, . . . , N_(F)−1), may be provided in two forms—a “sorted” form and a “random-ordered” form. In the sorted form, the diagonal elements of each matrix Λ(k) are sorted in decreasing order so that λ₁₁(k)≧λ₂₂ (k)≧ . . . ≧λ_(rr)(k), and their eigen-vectors are arranged in corresponding order in U(k) and V(k). The sorted form is indicated by the subscript s, i.e., U _(s)(k), Λ _(s)(k), and V _(s)(k), for k=(0, 1, . . . , N_(F)−1).

In the random-ordered form, the ordering of the singular values and eigen-vectors may be random and further independent of frequency. The random form is indicated by the subscript r. The particular form selected for use, sorted or random-ordered, influences the selection of the eigenmodes for use for data transmission and the coding and modulation scheme to be used for each selected eigenmode.

A weight computation unit 230 receives the set of diagonal matrices, Λ, which contains a set of singular values (i.e., λ₁₁(k), λ₂₂(k), λ_(rr)(k)) for each frequency bin. Weight computation unit 230 then derives a set of weighting matrices, W, where W=[W(0) . . . W(k) . . . W(N_(F)−1)]. The weighting matrices are used to scale the modulation symbol vectors, s(n), in either the time or frequency domain, as described below.

Weight computation unit 230 includes a channel inversion unit 232 and (optionally) a water-pouring analysis unit 234. Channel inversion unit 232 derives a set of weights, w _(ii), for each eigenmode, which is used to combat the frequency selective fading on the eigenmode. Water-pouring analysis unit 234 derives a set of scaling values, b, for the eigenmodes of the MIMO channel. These scaling values are indicative of the transmit powers allocated to the eigenmodes. Channel inversion and water-pouring are described in further detail below.

Channel Inversion

FIG. 3A is a diagram that graphically illustrates the derivation of the set of weights, w _(ii), used to invert the frequency response of each eigenmode. The set of diagonal matrices, Λ(k) for k=(0, 1, . . . , N_(F)−1), is shown arranged in order along an axis 310 that represents the frequency dimension. The singular values, λ_(ii)(k) for i=(1, 2, . . . , Ns), of each matrix Λ(k) are located along the diagonal of the matrix. Axis 312 may thus be viewed as representing the spatial dimension. Each eigenmode of the MIMO channel is associated with a set of elements, {λ_(ii)(k)} for k=(0, 1, . . . , N_(F)−1), that is indicative of the frequency response of that eigenmode. The set of elements {λ_(ii)(k)} for each eigenmode is shown by the shaded boxes along a dashed line 314. For each eigenmode that experiences frequency selective fading, the elements {λ_(ii)(k)} for the eigenmode may be different for different values of k.

Since frequency selective fading causes ISI, the deleterious effects of ISI may be mitigated by “inverting” each eigenmode such that it appears flat in frequency at the receiver. The channel inversion may be achieved by deriving a set of weights, {w_(ii)(k)} for k=(0, 1, . . . , N_(F)−1), for each eigenmode such that the product of the weights and the corresponding eigenvalues (i.e., the squares of the diagonal elements) are approximately constant for all values of k, which may be expressed as w_(ii)(k)·λ_(ii) ²(k)=a_(i), for k=(0, 1, . . . , N_(F)−1)

For eigenmode i, the set of weights for the N_(F) frequency bins, w ₁₁=[w_(ii)(0) . . . w_(ii)(k) . . . w_(ii)(N_(F)1)]^(T), used to invert the channel may be derived as:

$\begin{matrix} {{{w_{ii}(k)} = \frac{a_{i}}{\lambda_{ii}^{2}(k)}},{{{for}\mspace{14mu} k} = \left( {0,1,\ldots \mspace{14mu},{N_{F} - 1}} \right)},} & {{Eq}.\mspace{14mu} (3)} \end{matrix}$

where a_(i) is a normalization factor that may be expressed as:

$\begin{matrix} {a_{i} = {\frac{\sum\limits_{k = 0}^{N_{F} - 1}{\lambda_{ii}^{2}(k)}}{\sum\limits_{k = 0}^{N_{F} - 1}\frac{1}{\lambda_{ii}^{2}(k)}}.}} & {{Eq}.\mspace{14mu} (4)} \end{matrix}$

As shown in equation (4), a normalization factor a_(i) is determined for each eigenmode based on the set of eigenvalues (i.e., the squared singular values), {λ_(ii) ²(k)} for k=(0, 1, . . . , N_(F)−1), associated with that eigenmode. The normalization factor a_(i) is defined such that

${\sum\limits_{k = 0}^{N_{F} - 1}{w_{ii}(k)}} = {\sum\limits_{k = 0}^{N_{F} - 1}{{\lambda_{ii}^{2}(k)}.}}$

FIG. 3B is a diagram that graphically illustrates the relationship between the set of weights for a given eigenmode and the set of eigenvalues for that eigenmode. For eigenmode i, the weight w_(ii)(k) for each frequency bin is inversely related to the eigenvalue λ_(ii) ²(k) for that bin, as shown in equation (3). To flatten the spatial subchannel and minimize or reduce ISI, it is undesirable to selectively eliminate transmit power on any frequency bin. The set of N_(F) weights for each eigenmode is used to scale the modulation symbols, s(n), in the frequency or time domain, prior to transmission on the eigenmode.

For the sorted order form, the singular values λ_(ii)(k), for i=(1, 2, . . . , N_(S)), for each matrix Λ(k) are sorted such that the diagonal elements of Λ(k) with smaller indices are generally larger. Eigenmode 0 (which is often referred to as the principle eigenmode) would then be associated with the largest singular value in each of the N_(F) diagonal matrices, Λ(k), eigenmode 1 would then be associated with the second largest singular value in each of the N_(F) diagonal matrices, and so on. Thus, even though the channel inversion is performed over all N_(F) frequency bins for each eigenmode, the eigenmodes with lower indices are not likely to have too many bad bins (if any). Thus, at least for eigenmodes with lower indices, excessive transmit power is not used for bad bins.

The channel inversion may be performed in various manners to invert the MIMO channel, and this is within the scope of the invention. In one embodiment, the channel inversion is performed for each eigenmode selected for use. In another embodiment, the channel inversion may be performed for some eigenmodes but not others. For example, the channel inversion may be performed for each eigenmode determined to induce excessive ISI. The channel inversion may also be dynamically performed for some or all eigenmodes selected for use, for example, when the MIMO channel is determined to be frequency selective (e.g., based on some defined criteria).

Channel inversion is described in further detail in U.S. Patent Application Publication No. 2003-0048856 (application Ser. No. 09/860,274), filed May 17, 2001, U.S. Pat. No. 7,072,413 (application Ser. No. 09/881,610), issued Jul. 4, 2006 (filed Jun. 14, 2001), and U.S. Pat. No. 6,751,187 (application Ser. No. 09/892,379), issued Jun. 15, 2004 (filed Jun. 26, 2001), all three entitled “Method and Apparatus for Processing Data for Transmission in a Multi-Channel Communication System Using Selective Channel Inversion,” assigned to the assignee of the present application and incorporated herein by reference.

Water-Pouring

In an embodiment, water-pouring analysis is performed (if at all) across the spatial dimension such that more transmit power is allocated to eigenmodes with better transmission capabilities. The water-pouring power allocation is analogous to pouring a fixed amount of water into a vessel with an irregular bottom, where each eigenmode corresponds to a point on the bottom of the vessel, and the elevation of the bottom at any given point corresponds to the inverse of the SNR associated with that eigenmode. A low elevation thus corresponds to a high SNR and, conversely, a high elevation corresponds to a low SNR. The total available transmit power, P_(total), is then “poured” into the vessel such that the lower points in the vessel (i.e., those with higher SNRs) are filled first, and the higher points (i.e., those with lower SNRs) are filled later. A constant P_(set) is indicative of the water surface level for the vessel after all of the total available transmit power has been poured. This constant may be estimated initially based on various system parameters. The power allocation is dependent on the total available transmit power and the depth of the vessel over the bottom surface. The points with elevations above the water surface level are not filled (i.e., eigenmodes with SNRs below a particular value are not used for data transmission).

In an embodiment, the water-pouring is not performed across the frequency dimension because this tends to exaggerate the frequency selectivity of the eigenmodes created by the channel eigenmode decomposition described above. The water-pouring may be performed such that all eigenmodes are used for data transmission, or only a subset of the eigenmodes is used (with bad eigenmodes being discarded). It can be shown that water-pouring across the eigenmodes, when used in conjunction with the channel inversion with the singular values sorted in descending order, can provide near-optimum performance while mitigating the need for equalization at the receiver.

The water-pouring may be performed by water-pouring analysis unit 234 as follows. Initially, the total power in each eigenmode is determined as:

$\begin{matrix} {P_{i,\lambda} = {\sum\limits_{k = 0}^{N_{F} - 1}{{\lambda_{ii}^{2}(k)}.}}} & {{Eq}.\mspace{14mu} (5)} \end{matrix}$

The SNR for each eigenmode may then be determined as:

$\begin{matrix} {{{SNR}_{i} = \frac{P_{i,\lambda}}{\sigma^{2}}},} & {{Eq}.\mspace{14mu} (6)} \end{matrix}$

where σ² is the received noise variance, which may also be denoted as the received noise power N₀. The received noise power corresponds to the noise power on the recovered symbols at the receiver, and is a parameter that may be provided by the receiver to the transmitter as part of the reported CSI.

The transmit power, P_(i), to be allocated to each eigenmode may then be determined as:

$\begin{matrix} {{P_{i} = {\max \left\lbrack {\left( {P_{set} - \frac{1}{{SNR}_{i}}} \right),0} \right\rbrack}},{and}} & {{Eq}.\mspace{14mu} \left( {7a} \right)} \\ {{P_{total} \geq {\sum\limits_{i = 1}^{N_{S}}P_{i}}},} & {{Eq}.\mspace{14mu} \left( {7b} \right)} \end{matrix}$

where P_(set) is a constant that may be derived from various system parameters, and P_(total) is the total transmit power available for allocation to the eigenmodes.

As shown in equation (7a), each eigenmode of sufficient quality is allocated transmit power of

$\left( {P_{set} - \frac{1}{{SNR}_{i}}} \right).$

Thus, eigenmodes that achieve better SNRs are allocated more transmit powers. The constant P_(set) determines the amounts of transmit power to allocate to the better eigenmodes. This then indirectly determines which eigenmodes get selected for use since the total available transmit power is limited and the power allocation is constrained by equation (7b).

Water-pouring analysis unit 234 thus receives the set of diagonal matrices, Λ, and the received noise power, σ². The matrices Λ are then used in conjunction with the received noise power to derive a vector of scaling values, b=[b₀ . . . b_(i) . . . b_(N) _(S) ]^(T), where b_(i)=P_(i) for i=(1, 2, . . . , N_(S)). The P_(i) are the solutions to the water-pouring equations (7a) and (7b). The scaling values in b are indicative of the transmit powers allocated to the N_(S) eigenmodes, where zero or more eigenmodes may be allocated no transmit power.

FIG. 4 is a flow diagram of an embodiment of a process 400 for allocating the total available transmit power to a set of eigenmodes. Process 400, which is one specific water-pouring implementation, determines the transmit powers, P_(i), for iεI, to be allocated to the eigenmodes in set I, given the total transmit power, P_(total), available at the transmitter, the set of eigenmode total powers P_(i,λ), and the received noise power, σ².

Initially, the variable n used to denote the iteration number is set to one (i.e., n=1) (step 412). For the first iteration, set I(n) is defined to include all of the eigenmodes for the MIMO channel, or I(n)={1, 2, . . . , N_(S)} (step 414). The cardinality (or length) of set I(n) for the current iteration n is then determined as L_(I)(n)=|I(n)|, which is L_(I)(n)=N_(S) for the first iteration (step 416).

The total effective power, P_(eff)(n), to be distributed across the eigenmodes in set I(n) is next determined (step 418). The total effective power is defined to be equal to the total available transmit power, P_(total), plus the sum of the inverse SNRs for the eigenmodes in set I(n). This may be expressed as:

$\begin{matrix} {{P_{eff}(n)} = {P_{total} + {\sum\limits_{i \in {I{(n)}}}\frac{\sigma^{2}}{P_{i,\lambda}}}}} & {{Eq}.\mspace{14mu} (8)} \end{matrix}$

The total available transmit power is then allocated to the eigenmodes in set I(n). The index i used to iterate through the eigenmodes in set I(n) is initialized to one (i.e., i=1) (step 420). The amount of transmit power to allocate to eigenmode i is then determined (step 422) based on the following:

$\begin{matrix} {{P_{i}(n)} = {\frac{P_{eff}(n)}{L_{I}(n)} - {\frac{\sigma^{2}}{P_{i,\lambda}}.}}} & {{Eq}.\mspace{14mu} (9)} \end{matrix}$

Each eigenmode in set I(n) is allocated transmit power, P_(i), in step 422. Steps 424 and 426 are part of a loop to allocate transmit power to each of the eigenmodes in set I(n).

FIG. 5A graphically illustrates the total effective power, P_(eff), for an example MIMO system with three eigenmodes. Each eigenmode has an inverse SNR equal to σ²/λ_(ii) ² for i={1, 2, 3}, which assumes a normalized transmit power of 1.0. The total transmit power available at the transmitter is P_(total)=P₁+P₂+P₃, and is represented by the shaded area in FIG. 5A. The total effective power is represented by the area in the shaded and unshaded regions in FIG. 5A.

For water-pouring, although the bottom of the vessel has an irregular surface, the water level at the top remains constant across the vessel. Likewise and as shown in FIG. 5A, after the total available transmit power, P_(total), has been distributed to the eigenmodes, the final power level is constant across all eigenmodes. This final power level is determined by dividing P_(eff) (n) by the number of eigenmodes in set I(n), L_(I)(n). The amount of power allocated to eigenmode i is then determined by subtracting the inverse SNR of that eigenmode, σ²/λ_(ii) ², from the final power level, P_(eff)(n)/L_(I)(n), as given by equation (9) and shown in FIG. 5A.

FIG. 5B shows a situation whereby the water-pouring power allocation results in an eigenmode receiving negative power. This occurs when the inverse SNR of the eigenmode is above the final power level, which is expressed by the condition (P_(eff)(n)/L_(I)(n))<(σ²/λ_(ii) ²).

Referring back to FIG. 4, at the end of the power allocation, a determination is made whether or not any eigenmode has been allocated negative power (i.e., P_(i)<0) (step 428). If the answer is yes, then the process continues by removing from set I(n) all eigenmodes that have been allocated negative powers (step 430). The index n is incremented by one (i.e., n=n+1) (step 432). The process then returns to step 416 to allocate the total available transmit power among the remaining eigenmodes in set I(n). The process continues until all eigenmodes in set I(n) have been allocated positive transmit powers, as determined in step 428. The eigenmodes not in set I(n) are allocated zero power.

Water-pouring is also described by Robert G. Gallager, in “Information Theory and Reliable Communication,” John Wiley and Sons, 1968, which is incorporated herein by reference. A specific algorithm for performing the basic water-pouring process for a MIMO-OFDM system is described in U.S. Pat. No. 6,956,907 (application Ser. No. 09/978,337), entitled “Method and Apparatus for Determining Power Allocation in a MIMO Communication System,” issued Oct. 18, 2005 (filed Oct. 15, 2001). Water-pouring is also described in further detail in U.S. Pat. No. 7,020,482 (application Ser. No. 10/056,275), entitled “Reallocation of Excess Power for Full Channel-State Information (CSI) Multiple-Input, Multiple-Output (MIMO) Systems,” issued Mar. 28, 2006 (filed Jan. 23, 2002). These applications are assigned to the assignee of the present application and incorporated herein by reference.

If water-pouring is performed to allocate the total available transmit power to the eigenmodes, then water-pouring analysis unit 234 provides a set of N_(S) scaling values, b={b_(o) . . . b_(i) . . . b_(N) _(S) }, for the N_(S) eigenmodes. Each scaling value is for a respective eigenmode and is used to scale the set of weights determined for that eigenmode.

For eigenmode i, a set of weights, ŵ _(ii)=[ŵ _(ii)(0) . . . ŵ _(ii)(k) . . . ŵ _(ii)(N_(F)−1)]^(T) , used to invert the channel and scale the transmit power of the eigenmode may be derived as:

$\begin{matrix} {{{{\hat{w}}_{ii}(k)} = \frac{a_{i}b_{i}}{\lambda_{ii}^{2}(k)}},{{{for}\mspace{14mu} k} = \left( {0,1,\ldots \mspace{14mu},{N_{F} - 1}} \right)},} & {{Eq}.\mspace{14mu} (10)} \end{matrix}$

where the normalization factor, a_(i), and the scaling value, b_(i), are derived as described above.

Weight computation unit 230 provides the set of weighting matrices, W, which may be obtained using the weights w_(ii) (k) or ŵ_(ii)(k). Each weighting matrix, W(k), is a diagonal matrix whose diagonal elements are composed of the weights derived above. In particular, if only channel inversion is performed, then each weighting matrix, W(k), for k=(0, . . . , N_(F)−1), is defined as:

W (k)=diag (w ₁₁(k), w ₂₂(k), . . . , w _(N) _(S) _(N) _(S) (k)),  Eq. (11a)

where w_(ii)(k) is derived as shown in equation (3). And if both channel inversion and water-pouring are performed, then each weighting matrix, W(k), for k=(0, 1, . . . , N_(F)−1), is defined as:

W (k)=diag (ŵ ₁₁(k), ŵ ₂₂(k), . . . , ŵ _(N) _(S) _(N) _(S) (k)),  Eq. (11b)

where ŵ_(ii) (k) is derived as shown in equation (10).

Referring back to FIG. 2, a scaler/IFFT 236 receives (1) the set of unitary matrices, V, which are the matrices of right eigen-vectors of Ĥ, and (2) the set of weighting matrices, W, for all N_(F) frequency bins. Scaler/IFFT 236 then derives a spatio-temporal pulse-shaping matrix, P _(tx)(n), for the transmitter based on the received matrices. Initially, the square root of each weighting matrix, W(k), is computed to obtain a corresponding matrix, √{square root over (W(k))}, whose elements are the square roots of the elements of W(k). The elements of the weighting matrices, W(k) for k=(0, 1, . . . , N_(F)−1), are related to the power of the eigenmodes. The square root then transforms the power to the equivalent signal scaling. For each frequency bin k, the product of the square-root weighting matrix, √{square root over (W(k))}, and the corresponding unitary matrix, V(k), is then computed to provide a product matrix, V(k)√{square root over (W(k))}. The set of product matrices, V(k)√{square root over (W(k))} for k=(0, 1, . . . , N_(F)−1), which is also denoted as V√{square root over (W)}, defines the optimal or near-optimal spatio-spectral shaping to be applied to the modulation symbol vectors, s(n).

An inverse FFT of V√{square root over (W)} is then computed to derive the spatio-temporal pulse-shaping matrix, P _(tx)(n), for the transmitter, which may be expressed as:

P _(tx)(n)=IFFT[V√{square root over (W)}].  Eq. (12)

The pulse-shaping matrix, P _(tx)(n), is an N_(T)×N_(T) matrix. Each element of P _(tx)(n) is a set of N_(F) time-domain values, which is obtained by the inverse FFT of a set of values for the corresponding element of the product matrices, V√{square root over (W)}. Each column of P _(tx)(n) is a steering vector for a corresponding element of s(n).

A convolver 240 receives and preconditions the modulation symbol vectors, s(n), with the pulse-shaping matrix, P _(tx)(n), to provide the transmitted symbol vectors, x(n). In the time domain, the preconditioning is a convolution operation, and the convolution of s(n) with P _(tx)(n) may be expressed as:

$\begin{matrix} {{\underset{\_}{x}(n)} = {\sum\limits_{l}{{{\underset{\_}{P}}_{tx}(l)}{{\underset{\_}{s}\left( {n - l} \right)}.}}}} & {{Eq}.\mspace{14mu} (13)} \end{matrix}$

The matrix convolution shown in equation (13) may be performed as follows. To derive the i-th element of the vector x(n) for time n, x_(i)(n), the inner product of the i-th row of the matrix P _(tx)(l) with the vector s(n−l) is formed for a number of delay indices (e.g., 0≦l≦(N_(F)−1)), and the results are accumulated to derive the element x_(i)(n). The preconditioned symbol streams transmitted on each transmit antenna (i.e., each element of x(n) or x_(i)(n)) is thus formed as a weighted combination of the N_(R) modulation symbol streams, with the weighting determined by the appropriate column of the matrix P _(tx)(n). The process is repeated such that each element of x(n) is obtained from a respective column of the matrix P _(tx)(n) and the vector s(n).

Each element of x(n) corresponds to a sequence of preconditioned symbols to be transmitted over a respective transmit antenna. The N_(T) preconditioned symbol sequences collectively form a sequence of vectors, which are also referred to as the transmitted symbol vectors, x(n), with each such vector including up to N_(T) preconditioned symbols to be transmitted from up to N_(T) transmit antennas for the n-th symbol period. The N_(T) preconditioned symbol sequences are provided to transmitters 122 a through 122 t and processed to derive N_(T) modulated signals, which are then transmitted from antennas 124 a through 124 t, respectively.

The embodiment shown in FIG. 2 performs time-domain beam-steering of the modulation symbol vectors, s(n). The beam-steering may also be performed in the frequency domain. This can be done using techniques, such as the overlap-add method, which are well-known in the digital signal processing field, for implementing finite-duration impulse response (FIR) filters in the frequency domain. In this case, the sequences that make up the elements of the matrix P _(tx)(n) for n=(0, 1, . . . , N_(F)−1) are each padded with N_(O)−N_(F) zeros, resulting in a matrix of zero-padded sequences, q _(tx)(n), for n=(0, 1, . . . , N_(O)−1). An N_(O)-point fast Fourier transform (FFT) is then computed for each zero-padded sequence in the matrix q _(tx)(n), resulting in a matrix Q _(tx)(k) for k=(0, 1, . . . , N_(O)−1).

Also, the sequences of modulation symbols that make up the elements of s(n) are each broken up into subsequences of length N_(SS)=N_(O)−N_(F)+1. Each subsequence is then padded with N_(F)−1 zeros to provide a corresponding vector of length N_(O). The sequences of s(n) are thus processed to provide sequences of vectors of length N_(O), {tilde over (s)} _(l)(n), where the subscript l is the index for the vectors that correspond to the zero-padded subsequences. An N_(O)-point fast Fourier transform is then computed for each of the zero-padded subsequences, resulting in a sequence of frequency-domain vectors, {tilde over (S)} _(l)(k), for different values of l. Each vector {tilde over (S)} _(l)(k), for a given l, includes a set of frequency-domain vectors of length N_(O) (i.e., for k=(0, 1, . . . , N_(O)−1)). The matrix Q _(tx)(k) is then multiplied with the vector {tilde over (S)} _(l)(k), for each value of l, where the pre-multiplication is performed for each value of k, i.e., for k=(0, 1, . . . , N_(O)−1). The inverse FFTs are then computed for the matrix-vector product Q _(tx)(k) {tilde over (S)} _(l)(k) to provide a set of time-domain subsequences of length N_(O). The resulting subsequences are then reassembled, according to the overlap-add method, or similar means, as is well-known in the art, to form the desired output sequences.

FIG. 6 is a flow diagram of an embodiment of a process 600 that may be performed at the transmitter unit to implement the various transmit processing techniques described herein. Initially, data to be transmitted (i.e., the information bits) is processed in accordance with a particular processing scheme to provide a number of streams of modulation symbols (step 612). As noted above, the processing scheme may include one or more coding schemes and one or more modulation schemes (e.g., a separate coding and modulation scheme for each modulation symbol stream).

An estimated channel response matrix for the MIMO channel is then obtained (step 614). This matrix may be the estimated channel impulse response matrix,

or the estimated channel frequency response matrix, Ĥ, which may be provided to the transmitter from the receiver. The estimated channel response matrix is then decomposed (e.g., using channel eigen-decomposition) to obtain a set of matrices of right eigen-vectors, V, and a set of matrices of singular values, Λ(step 616).

A number of sets of weights, w _(ii), are then derived based on the matrices of singular values (step 618). One set of weight may be derived for each eigenmode used for data transmission. These weights are used to reduce or minimize intersymbol interference at the receiver by inverting the frequency response of each eigenmode selected for use.

A set of scaling values, b, may also be derived based on the matrices of singular values (step 620). Step 620 is optional, as indicated by the dashed box for step 620 in FIG. 6. The scaling values may be derived using water-pouring analysis and are used to adjust the transmit powers of the selected eigenmodes.

A pulse-shaping matrix, P _(tx)(n), is then derived based on the matrices of right eigen-vectors, V, the sets of weights, w _(ii), and (if available) the set of scaling values, b (step 622). The streams of modulation symbols are then preconditioned (in either the time domain or frequency domain) based on the pulse-shaping matrix to provide a number of streams of preconditioned symbols, x(n), to be transmitted over the MIMO channel (step 624).

Time-domain transmit processing with channel eigenmode decomposition and water-pouring is described in further detail in U.S. patent application Ser. No. 10/017,038, entitled “Time-Domain Transmit and Receive Processing with Channel Eigen-mode Decomposition for MIMO Systems,” filed Dec. 7, 2001, which is assigned to the assignee of the present application and incorporated herein by reference.

FIG. 7 is a block diagram of an embodiment of a receiver unit 700 capable of implementing various processing techniques described herein. Receiver unit 700 is an embodiment of the receiver portion of receiver system 150 in FIG. 1. Receiver unit 700 includes (1) a RX MIMO processor 160 a that processes N_(R) received symbol streams to provide N_(T) recovered symbol streams and (2) a RX data processor 162 a that demodulates, deinterleaves, and decodes the recovered symbols to provide decoded bits. RX MIMO processor 160 a and RX data processor 162 a are one embodiment of RX MIMO processor 160 and RX data processor 162, respectively, in FIG. 1.

Referring back to FIG. 1, the transmitted signals from N_(T) transmit antennas are received by each of N_(R) antennas 152 a through 152 r. The received signal from each antenna is routed to a respective receiver 154, which is also referred to as a front-end processor. Each receiver 154 conditions (e.g., filters, amplifies, and frequency downconverts) a respective received signal, and further digitizes the conditioned signal to provide ADC samples. Each receiver 154 may further data demodulate the ADC samples with a recovered pilot to provide a respective stream of received symbols. Receivers 154 a through 154 r thus provide N_(R) received symbol streams. These streams collectively form a sequence of vectors, which are also referred to as the received symbol vectors, r(n), with each such vector including N_(R) received symbols from the N_(R) receivers 154 for the n-th symbol period. The received symbol vectors, r(n), are then provided to RX MIMO processor 160 a.

Within RX MIMO processor 160 a, a channel estimator 712 receives the vectors r(n) and derives an estimated channel impulse response matrix,

which may be sent back to the transmitter system and used in the transmit processing. An FFT 714 then performs an FFT on the estimated channel impulse response matrix,

to obtain the estimated channel frequency response matrix, Ĥ (i.e., Ĥ=FFT

A unit 716 then performs the channel eigen-decomposition of Ĥ(k), for each frequency bin k, to obtain the corresponding matrix of left eigen-vectors, U(k). Each column of U, where U=[U(0) . . . U(k) . . . U(N_(F)−1)], is a steering vector for a corresponding element of r(n), and is used to orthogonalize the received symbol streams. An IFFT 718 then performs the inverse FFT of U to obtain a spatio-temporal pulse-shaping matrix, ν(n), for the receiver system.

A convolver 720 then conditions the received symbol vectors, r(n), with the conjugate transpose of the spatio-temporal pulse-shaping matrix, ν ^(H) (n), to obtain the recovered symbol vectors, ŝ(n), which are estimates of the modulation symbol vectors, s(n). In the time domain, the conditioning is a convolution operation, which may be expressed as:

$\begin{matrix} {{\underset{\_}{\hat{s}}(n)} = {\sum\limits_{l}{{{\underset{\_}{\upsilon}}^{H}(l)}{{\underset{\_}{r}\left( {n - l} \right)}.}}}} & {{Eq}.\mspace{14mu} (14)} \end{matrix}$

The pulse-shaping at the receiver may also be performed in the frequency domain, similar to that described above for the transmitter. In this case, the N_(R) sequences of received symbols for the N_(R) receive antennas, which make up the sequence of received symbol vectors, r(n), are each broken up into subsequences of N_(SS) received symbols, and each subsequence is zero-padded to provide a corresponding vector of length N_(O). The N_(R) sequences of r(n) are thus processed to provide N_(R) sequences of vectors of length N_(O), {tilde over (r)} _(l)(n), where the subscript l is the index for the vectors that correspond to the zero-padded subsequences. Each zero-padded subsequence is then transformed via an FFT, resulting in a sequence of frequency-domain vectors, R _(l)(k), for different values of l. Each vector R _(l)(k), for a given l, includes a set of frequency-domain vectors of length N_(O) (i.e., for k=(0, 1, . . . , N_(O)−1)).

The conjugate transpose of the spatio-temporal pulse-shaping matrix, ν ^(H)(n), is also zero-padded and transformed via an FFT to obtain a frequency-domain matrix, Ũ ^(H)(k) for k=(0, 1, . . . , N_(O)−1). The vector R _(l)(k), for each value of, is then pre-multiplied with the conjugate transpose matrix Ũ ^(H)(k) (where the pre-multiplication is performed for each value of k, i.e., for k=(0, 1, . . . , N_(O)−1)) to obtain a corresponding frequency-domain vector Ŝ _(l)(k). Each vector Ŝ _(l)(k), which includes a set of frequency-domain vectors of length N_(O), can then be transformed via an inverse FFT to provide a corresponding set of time-domain subsequences of length N_(O). The resulting subsequences are then reassembled according to the overlap-add method, or similar means, as is well-known in the art, to obtain sequences of recovered symbols, which corresponds to the set of recovered symbol vectors, ŝ(n).

Thus recovered symbol vectors, ŝ(n), may be characterized as a convolution in the time domain, as follows:

$\begin{matrix} {{{\underset{\_}{\hat{s}}(n)} = {{\sum\limits_{l}{{\underset{\_}{\Gamma}(l)}{\underset{\_}{s}\left( {n - l} \right)}}} + {\underset{\_}{\hat{z}}(n)}}},} & {{Eq}.\mspace{14mu} (15)} \end{matrix}$

where Γ(l) is the inverse FFT of {circumflex over (Λ)}(k)=Λ(k)√{square root over (W(k))}; and

{circumflex over (z)}(n) is the received noise as transformed by the receiver spatio-temporal pulse-shaping matrix, ν ^(H)(l).

The matrix Γ(n) is a diagonal matrix of eigen-pulses derived from the set of matrices {circumflex over (Λ)}, where {circumflex over (Λ)}=[{circumflex over (Λ)}(0) . . . {circumflex over (Λ)}(k) . . . {circumflex over (Λ)}(N_(F)−1)]. In particular, each diagonal element of Γ(n) corresponds to an eigen-pulse that is obtained as the IFFT of a set of singular values, [{circumflex over (λ)}_(ii)(0) . . . {circumflex over (λ)}_(ii)(k) . . . {circumflex over (λ)}_(ii)(N_(F)1)]^(T), for a corresponding element of {circumflex over (Λ)},

The two forms for ordering the singular values, sorted and random-ordered, result in two different types of eigen-pulses. For the sorted form, the resulting eigen-pulse matrix, Γ _(s)(n), is a diagonal matrix of pulses that are sorted in descending order of energy content. The pulse corresponding to the first diagonal element of the eigen-pulse matrix, {Γ _(s)(n)}₁₁, has the most energy, and the pulses corresponding to elements further down the diagonal have successively less energy. Furthermore, when the SNR is low enough that water-pouring results in some of the frequency bins having little or no energy, the energy is taken out of the smallest eigen-pulses first. Thus, at low SNRs, one or more of the eigen-pulses may have little or no energy. This has the advantage that at low SNRs, the coding and modulation are simplified through the reduction in the number of orthogonal subchannels. However, in order to approach channel capacity, the coding and modulation are performed separately for each eigen-pulse.

The random-ordered form of the singular values in the frequency domain may be used to further simplify coding and modulation (i.e., to avoid the complexity of separate coding and modulation for each element of the eigen-pulse matrix). In the random-ordered form, for each frequency bin, the ordering of the singular values is random instead of being based on their magnitude or size. This random ordering can result in approximately equal energy in all of the eigen-pulses. When the SNR is low enough to result in frequency bins with little or no energy, these bins are spread approximately evenly among the eigenmodes so that the number of eigen-pulses with non-zero energy is the same independent of SNR. At high SNRs, the random-order form has the advantage that all of the eigen-pulses have approximately equal energy, in which case separate coding and modulation for different eigenmodes are not required.

If the response of the MIMO channel is frequency selective, then the elements in the diagonal matrices, Λ(k), are time-dispersive. However, because of the pre-processing at the transmitter to invert the channel, the resulting recovered symbol sequences, ŝ(n), have little intersymbol interference, if the channel inversion is effectively performed. In that case, additional equalization would not be required at the receiver to achieve high performance.

If the channel inversion is not effective (e.g., due to an inaccurate estimated channel frequency response matrix, Ĥ) then an equalizer may be used to equalize the recovered symbols, ŝ(n), prior to the demodulation and decoding. Various types of equalizer may be used to equalize the recovered symbol streams, including a minimum mean square error linear equalizer (MMSE-LE), a decision feedback equalizer (DFE), a maximum likelihood sequence estimator (MLSE), and so on.

Since the orthogonalization process at the transmitter and receiver results in decoupled (i.e., orthogonal) recovered symbol streams at the receiver, the complexity of the equalization required for the decoupled symbol streams is greatly reduced. In particular, the equalization may be achieved by parallel time-domain equalization of the independent symbol streams. The equalization may be performed as described in the aforementioned U.S. patent application Ser. No. 10/017,038, and in U.S. patent application Ser. No. 09/993,087, entitled “Multiple-Access Multiple-Input Multiple-Output (MIMO) Communication System,” filed Nov. 6, 2001, which is assigned to the assignee of the present application and incorporated herein by reference.

For the embodiment in FIG. 7, the recovered symbol vectors, ŝ(n), are provided to RX data processor 162 a. Within processor 162 a, a symbol demapping element 732 demodulates each recovered symbol in ŝ(n) in accordance with a demodulation scheme that is complementary to the modulation scheme used for that symbol at the transmitter system. The demodulated data from symbol demapping element 732 is then de-interleaved by a deinterleaver 734. The deinterleaved data is further decoded by a decoder 736 to obtain the decoded bits, {circumflex over (d)}_(i), which are estimates of the transmitted information bits, d_(i). The deinterleaving and decoding are performed in a manner complementary to the interleaving and encoding, respectively, performed at the transmitter system. For example, a Turbo decoder or a Viterbi decoder may be used for decoder 736 if Turbo or convolutional coding, respectively, is performed at the transmitter system.

FIG. 8 is a flow diagram of a process 800 that may be performed at the receiver unit to implement the various receive processing techniques described herein. Initially, an estimated channel response matrix for the MIMO channel is obtained (step 812). This matrix may be the estimated channel impulse response matrix,

or the estimated channel frequency response matrix, Ĥ. The matrix

or Ĥ may be obtained, for example, based on pilot symbols transmitted over the MIMO channel. The estimated channel response matrix is then decomposed (e.g., using channel eigen-decomposition) to obtain a set of matrices of left eigen-vectors, U (step 814).

A pulse-shaping matrix ν(n) is then derived based on the matrices of left eigen-vectors, U (step 816). The streams of received symbols are then conditioned (in either the time domain or frequency domain) based on the pulse-shaping matrix ν(n) to provide the streams of recovered symbols (step 818). The recovered symbols are further processed in accordance with a particular receive processing scheme, which is complementary to the transmit processing scheme used at the transmitter, to provide the decoded data (step 820).

Time-domain receive processing with channel eigenmode decomposition is described in further detail in the aforementioned U.S. patent application Ser. No. 10/017,038.

The techniques for processing a data transmission at a transmitter and a receiver described herein may be implemented in various wireless communication systems, including but not limited to MIMO and CDMA systems. These techniques may also be used for the forward link and/or the reverse link.

The techniques described herein to process a data transmission at the transmitter and receiver may be implemented by various means. For example, these techniques may be implemented in hardware, software, or a combination thereof. For a hardware implementation, the elements used to perform various signal processing steps at the transmitter (e.g., to code and modulate the data, decompose the channel response matrix, derive the weights to invert the channel, derive the scaling values for power allocation, derive the transmitter pulse-shaping matrix, precondition the modulation symbols, and so on) or at the receiver (e.g., to decompose the channel response matrix, derive the receiver pulse-shaping matrix, condition the received symbols, demodulate and decode the recovered symbols, and so on) may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.

For a software implementation, some or all of the signal processing steps at each of the transmitter and receiver may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in a memory unit (e.g., memories 132 and 172 in FIG. 1) and executed by a processor (e.g., controllers 130 and 170). The memory unit may be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art.

The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. 

1. In a multiple-input multiple-output (MIMO) communication system, a method for processing data for transmission over a MIMO channel, comprising: determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on a water pouring algorithm; determining, based on a total available transmit power and a sum of inverse signal to noise ratios (SNRs) for the eigenmodes in the set, a total effective power to be distributed across the eignemodes in the set; and allocating the total available transmit power to the eigenmodes in the set, wherein the transmit power allocated a given eigenmode is based on the total effective power, a cardinality of the set of eigenmodes, and the inverse SNR for the given eignmode.
 2. The method of claim 1, wherein determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on the water pouring algorithm comprises omitting, from an initial set of eigenmodes, one or more eigenmodes with transmission characteristics below a threshold value.
 3. The method of claim 1, further comprising receiving, as channel state information (CSI) from a receiver, receive noise power parameters to use in calculating the sum of the inverse signal to noise ratios (SNRs).
 4. The method of claim 1, wherein the transmit power allocated a given eigenmode is also based on a cardinality of the set of eigenmodes.
 5. The method of claim 1, further comprising obtaining the set of eigenmodes by performing channel eigen-decomposition based on an estimated channel response matrix.
 6. An apparatus for multiple-input multiple-output (MIMO) communications, comprising: logic for determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on a water pouring algorithm; logic for determining, based on a total available transmit power and a sum of inverse signal to noise ratios (SNRs) for the eigenmodes in the set, a total effective power to be distributed across the eignemodes in the set; and logic for allocating the total available transmit power to the eigenmodes in the set, wherein the transmit power allocated a given eigenmode is based on the total effective power, a cardinality of the set of eigenmodes, and the inverse SNR for the given eignmode.
 7. The apparatus of claim 6, wherein the logic for determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on the water pouring algorithm is configured to omit, from an initial set of eigenmodes, one or more eigenmodes with transmission characteristics below a threshold value.
 8. The apparatus of claim 6, further comprising logic for receiving, as channel state information (CSI) from a receiver, receive noise power parameters to use in calculating the sum of the inverse signal to noise ratios (SNRs).
 9. The apparatus of claim 6, wherein the logic for allocating the total available transmit power to the eigenmodes in the set is configured to allocate transmit power to a given eigenmode based on a cardinality of the set of eigenmodes.
 10. The apparatus of claim 6, further comprising logic for obtaining the set of eigenmodes by performing channel eigen-decomposition based on an estimated channel response matrix.
 11. An apparatus for multiple-input multiple-output (MIMO) communications, comprising: means for determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on a water pouring algorithm; means for determining, based on a total available transmit power and a sum of inverse signal to noise ratios (SNRs) for the eigenmodes in the set, a total effective power to be distributed across the eignemodes in the set; and means for allocating the total available transmit power to the eigenmodes in the set, wherein the transmit power allocated a given eigenmode is based on the total effective power, a cardinality of the set of eigenmodes, and the inverse SNR for the given eignmode.
 12. The apparatus of claim 11, wherein the means for determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on the water pouring algorithm is configured to omit, from an initial set of eigenmodes, one or more eigenmodes with transmission characteristics below a threshold value.
 13. The apparatus of claim 11, further comprising means for receiving, as channel state information (CSI) from a receiver, receive noise power parameters to use in calculating the sum of the inverse signal to noise ratios (SNRs).
 14. The apparatus of claim 11, wherein the means for allocating the total available transmit power to the eigenmodes in the set is configured to allocate transmit power to a given eigenmode based on a cardinality of the set of eigenmodes.
 15. The apparatus of claim 6, further comprising logic for obtaining the set of eigenmodes by performing channel eigen-decomposition based on an estimated channel response matrix.
 16. A memory unit having software codes stored therein, the software codes executable by a processor for performing operations comprising: determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on a water pouring algorithm; determining, based on a total available transmit power and a sum of inverse signal to noise ratios (SNRs) for the eigenmodes in the set, a total effective power to be distributed across the eignemodes in the set; and allocating the total available transmit power to the eigenmodes in the set, wherein the transmit power allocated a given eigenmode is based on the total effective power, a cardinality of the set of eigenmodes, and the inverse SNR for the given eignmode.
 17. The memory unit of claim 16, wherein determining a set of eigenmodes for the MIMO channel to be allocated transmission power based on the water pouring algorithm comprises omitting, from an initial set of eigenmodes, one or more eigenmodes with transmission characteristics below a threshold value.
 18. The memory unit of claim 16, wherein the operations further comprise receiving, as channel state information (CSI) from a receiver, receive noise power parameters to use in calculating the sum of the inverse signal to noise ratios (SNRs).
 19. The memory unit of claim 16, wherein the transmit power allocated a given eigenmode is also based on a cardinality of the set of eigenmodes.
 20. The memory unit of claim 16, wherein the operations further comprise obtaining the set of eigenmodes by performing channel eigen-decomposition based on an estimated channel response matrix. 